using Sinacor.Infra.UI.Common;
using System;

namespace Sinacor.UI.Bovespa.Contabil.Model.Parameter
{
    [Serializable]
	public class FiltroDespesaNota : BaseModel 
    {

		private Model.Enum.TipoBaseDespesa? _baseDespesa;
		private string _codigo;
		private int? _eventoContabil;
		private bool? _incideIrrf;
		private decimal? _percentualDespesa;
		private DateTime? _pregaoFinal;
		private DateTime? _pregaoInicial;
		private decimal? _valorMaximo;
		private decimal? _valorMinimo;

		public FiltroDespesaNota(){}

        public FiltroDespesaNota(
            string codigo, int? eventoContabil, bool? incideIrrf,
            decimal? percentualDespesa, DateTime? pregaoFinal, DateTime? pregaoInicial,
            Model.Enum.TipoBaseDespesa? baseDespesa, decimal? valorMaximo, decimal? valorMinimo)
        {
            _codigo = codigo;
            _eventoContabil = eventoContabil;
            _incideIrrf = incideIrrf;
            _percentualDespesa = percentualDespesa;
            _pregaoFinal = pregaoFinal;
            _pregaoInicial = pregaoInicial;
            _baseDespesa = baseDespesa;
            _valorMaximo = valorMaximo;
            _valorMinimo = valorMinimo;
        }

		public Model.Enum.TipoBaseDespesa? BaseDespesa
        {
			get{
				return _baseDespesa;
			}
			set{
				_baseDespesa = value; this.OnPropertyChanged("BaseDespesa");
			}
		}

		public string Codigo{
			get{
				return _codigo;
			}
			set{
				_codigo = value; this.OnPropertyChanged("Codigo"); 
			}
		}

		public int? EventoContabil{
			get{
				return _eventoContabil;
			}
			set{
				_eventoContabil = value; this.OnPropertyChanged("EventoContabil"); 
			}
		}

		public bool? IncideIrrf{
			get{
				return _incideIrrf;
			}
			set{
				_incideIrrf = value; this.OnPropertyChanged("IncideIrrf"); 
			}
		}

		public decimal? PercentualDespesa{
			get{
				return _percentualDespesa;
			}
			set{
				_percentualDespesa = value; this.OnPropertyChanged("PercentualDespesa"); 
			}
		}

		public DateTime? PregaoFinal{
			get{
				return _pregaoFinal;
			}
			set{
				_pregaoFinal = value; this.OnPropertyChanged("PregaoFinal"); 
			}
		}

		public DateTime? PregaoInicial{
			get{
				return _pregaoInicial;
			}
			set{
				_pregaoInicial = value; this.OnPropertyChanged("PregaoInicial"); 
			}
		}

		public decimal? ValorMaximo{
			get{
				return _valorMaximo;
			}
			set{
				_valorMaximo = value; this.OnPropertyChanged("ValorMaximo"); 
			}
		}

		public decimal? ValorMinimo{
			get{
				return _valorMinimo;
			}
			set{
				_valorMinimo = value; this.OnPropertyChanged("ValorMinimo"); 
			}
		}
	}
}